home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / phpMyAdmin / libraries / dbg / profiling.php next >
PHP Script  |  2004-11-18  |  4KB  |  86 lines

  1. <?php
  2. /* $Id: profiling.php,v 2.6 2004/11/19 14:26:55 lem9 Exp $ */
  3. // vim: expandtab sw=4 ts=4 sts=4:
  4.  
  5. if (isset($GLOBALS['DBG']) && $GLOBALS['DBG']
  6.         && isset($GLOBALS['cfg']['DBG']['profile']['enable'])
  7.         && $GLOBALS['cfg']['DBG']['profile']['enable']) {
  8.  
  9.     /**
  10.      * Displays profiling results when called
  11.      * WARNING: this function is SLOW
  12.      */
  13.     function dbg_dump_profiling_results() {
  14.         /* Applies to the original 'dbg_dump_profiling_results' function,
  15.          * sourced from http://dd.cron.ru/dbg/download.php?h=prof_sample2
  16.          * Copyright (c) 2002. Dmitri Dmitrienko
  17.          * LICENCE: This source file is subject to Mozilla Public License (MPL)
  18.          * AUTHOR: Dmitri Dmitrienko <dd@cron.ru>
  19.          */
  20.  
  21.         dbg_get_profiler_results($dbg_prof_results);
  22.  
  23.         echo '<br /><table width="1000" cellspacing="0" cellpadding="2" style="font:8pt courier">' . "\n" .
  24.             '<thead>' . "\n" .
  25.             '<tr style="background:#808080; color:#FFFFFF">' . "\n" .
  26.             '<td>' . $GLOBALS['strDBGModule'] . '</td>' . "\n" .
  27.             '<td>' . $GLOBALS['strDBGLine'] . '</td>' . "\n" .
  28.             '<td>' . $GLOBALS['strDBGHits'] . '</td>' . "\n" .
  29.             '<td>' . $GLOBALS['strDBGTimePerHitMs'] . '</td>' . "\n" .
  30.             '<td>' . $GLOBALS['strDBGTotalTimeMs'] . '</td>' . "\n" .
  31.             '<td>' . $GLOBALS['strDBGMinTimeMs'] . '</td>' . "\n" .
  32.             '<td>' . $GLOBALS['strDBGMaxTimeMs'] . '</td>' . "\n" .
  33.             '<td>' . $GLOBALS['strDBGContextID'] . '</td>' . "\n" .
  34.             '<td>' . $GLOBALS['strDBGContext'] . '</td>' . "\n" .
  35.             '</tr></thead>' . "\n" .
  36.             '<tbody style="vertical-align: top">' . "\n";
  37.         foreach ($dbg_prof_results['line_no'] AS $idx => $line_no) {
  38.             $mod_no = $dbg_prof_results['mod_no'][$idx];
  39.             dbg_get_module_name($mod_no, $mod_name);
  40.  
  41.             //if (strpos("!".$mod_name, 'dbg.php') > 0) continue;
  42.  
  43.             $hit_cnt = $dbg_prof_results['hit_count'][$idx];
  44.  
  45.             $time_sum = $dbg_prof_results['tm_sum'][$idx] * 1000;
  46.             $time_avg_hit = $time_sum / $hit_cnt;
  47.             $time_min = $dbg_prof_results['tm_min'][$idx] * 1000;
  48.             $time_max = $dbg_prof_results['tm_max'][$idx] * 1000;
  49.  
  50.             $time_sum = sprintf('%.3f', $time_sum);
  51.             $time_avg_hit = sprintf('%.3f', $time_avg_hit);
  52.             $time_min = sprintf('%.3f', $time_min);
  53.             $time_max = sprintf('%.3f', $time_max);
  54.  
  55.             dbg_get_source_context($mod_no, $line_no, $ctx_id);
  56.  
  57.             //use a default context name if needed
  58.             if (dbg_get_context_name($ctx_id, $ctx_name)
  59.                     && strcmp($ctx_name,'') == 0) {
  60.                 $ctx_name = "::main";
  61.             }
  62.  
  63.             $bk = "#ffffff";
  64.             if (($idx & 1) == 0)
  65.                 $bk = "#e0e0e0";
  66.  
  67.             if ($time_avg_hit > $GLOBALS['cfg']['DBG']['profile']['threshold'] ) {
  68.                 echo '<tr style="background:' . $bk . '">' .
  69.                     '<td>' . $mod_name . '</td>' .
  70.                     '<td>' . $line_no . '</td>' .
  71.                     '<td>' . $hit_cnt . '</td>' .
  72.                     '<td>' . $time_avg_hit . '</td>' .
  73.                     '<td>' . $time_sum . '</td>' .
  74.                     '<td>' . $time_min . '</td>' .
  75.                     '<td>' . $time_max . '</td>' .
  76.                     '<td>' . $ctx_id . '</td>' .
  77.                     '<td>' . $ctx_name . '</td>' .
  78.                     '</tr>' . "\n";
  79.             }
  80.         }
  81.         echo "</tbody></table>";
  82.     }
  83. }
  84.  
  85. ?>
  86.